home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PD Collection CD 1
/
PD Collection CD 1.iso
/
bitmap
/
palmaker
/
!PalMaker
/
!Help
< prev
next >
Wrap
Text File
|
1993-06-03
|
15KB
|
354 lines
PalMaker 1.14 (3 Jun 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this version:
- the octree datastructure is moved entirely into flexblocks. Because
the Octree algorithm is used in all quantization routines (the
colours are so nicely sorted in an octree), the wimpslot, after
!PalMaker is ready with it's calculation, is decreased further from
approx. 192 Kb to approx. 96 Kb. when using Heckbert quantization.
When using Octree or Variance quantization the wimpslot will mostly
stay at 64Kb.
- !PalMaker is now a real RISC OS 3.10 task.
- Iconbar icon is a 256 colour sprite.
PalMaker 1.13 (24 May 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this version:
- When the 'GiveBox' menu entry is chosen, PalMaker waits for the input
of the 'area of interest' rectangle. In previous versions there was no
way to abort this waiting, in the case the menu entry was chosen
premature or by accident.
In this version one can press the 'Adjust' mouse button to abort the
'waiting for a rectangle process'.
This holds too, when the dragging of the rectangle has already started.
Instead of releasing the 'Select' button to stop the drag, one presses
the 'Adjust' button while still pressing 'Select'.
PalMaker 1.12 (24 Apr 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this version:
- New iconbar icon!
- Moved more memory into flexblocks.
Wimpslot now is maximal 192Kb (was 288Kb in version 1.11).
- mouse clicks during redraw sequences and calculation are filtered out,
so no user intervention possible during multi-tasking redraw sequences.
This is because when the MENU button is pressed by accident, the menu
will open over the window of interest (we cannot see that because
VDU output is swiched), and so the palette is not optimal.
- Bug in 1.11: Test sprites were saved in <PalMaker$Dir>.stmp (cured)
- Bug in 1.09 - 1.11: Removing of pane(tool)-window(s) from ArtWorks crashed
PalMaker (cured)
PalMaker 1.11 (23 Apr 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this Version:
- another colour quantization routine added. It can be selected
from the Control submenu by choosing 'Variance'.
It uses always a 5 bit histogram (32 * 32 * 32 * 4 = 128 Kb) and
needs about 110 Kb extra space for holding statictical information.
This variance algorithm is based on:
Wan, Wong, and Prusinkiewicz,
"An Algorithm for Multidimensional Data Clustering",
Transactions on Mathematical Software, Vol. 14 #2 (June, 1988), pp. 153-162.
The results a better than the Octree or Heckbert approach. Although it is
somewhat slower in execution because of lots of floating point operations.
(No problem when the FPA arrives, then it will be approx. 40 times faster!)
Important is that it makes virtually no difference to the resulting palette
if the anti-aliasing option from ArtWorks is on or off. And this is certainly
not the case with the two other quantization algorithms, which give a worser
palette with anti-alisaing on.
PalMaker 1.10 (19 Apr 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this Version:
- When using !PalMaker on a non-Artworks non-Draw programme in 24 bpp
mode, the programme could not know that a palette change had occured.
This is now cured. !PakMaker now issues a message_palettechanged to the
programme, so it can update it's own internal colourtables for use in
for example sprite plotting.
PalMaker 1.09 (15 Apr 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
New in this Version:
- when using !PalMaker on an ArtWorks window and the window has
any tool(pane)-windows attached to it, !PalMaker will remove
the tool-windows, so you don't have to remove them anymore before
using !PalMaker. This is not the case for !Draw!
PalMaker 1.08 (13 Apr 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
In this new version (1.08) there are some very important improvements:
- Rendering of window-area of interest forced in a sprite (by using the
'switch output to sprite' approach), so no annoying palette changes
anymore for the monitor.
- No user clicks anymore needed to signal end of redraw.
- Works in all monitor screen modes.
- New fast 15 bit per pixel 32000 colour option (only for Artworks or
Artworks file viewers).
- New Heckbert 5 or 6 bits chroma switch.
- Choices can be saved.
How to do:
The procedure to get a 256 colour palette is still the same. Get the
interesting part of the document visible in it's window.
IMPORTANT: remove any PANE-WINDOW(S) from the window of interest!
Now choose the number of bpp (24 or 15, 15 only with ArtWorks) and the
quantization routine (Octree, Heckbert6 or Heckbert5) from the Control
submenu. Fastest setting is 15 bpp and Heckbert5 quantization.
Choose the 'givebox' menuentry from PalMakers main-menu. And drag a
rectangle to mark the area.
IMPORTANT: the start and endpoint of the drag has to be INSIDE the
window of interest, otherwise PalMaker will issue an error!
Now wait until the Hourglass stops and the palette is ready. If you are
in a non 256 colour mode, switch to one and choose 'set' from PalMaker's
main-menu.
What happens internally:
Immedialty after the rectangle drag has finished PalMaker switches the
VDU output to a sprite and re-opens the window of interest translated
so, that the bottom-left corner of the rectangle lies on point (0,0) in
the sprite. A 'forceredraw' is issued for the window. Any open pane-
window(s) will cover the window of interest because they are not opened
outside the screen! So be sure there are no pane-windows connected to
the left or bottom side of the window of interest!
15, 24 bpp:
Depending on the bpp mode PalMaker is in (15 or 24) see main-menu item:
'Control->' redraw will be forced one or three times. See the Houglass
changing colour from red, green to blue when in 24 bpp mode.
The 24 bpp mode can be used for any document drawing package. The 15 bpp
mode can only be used when an Artworks file renderer is reponsible for
the image rendered in the window of interest (!ArtWorks, !Impression or
!AWViewer). When using !ArtWorks or !AWViewer be carefull about the
fonts in 15 bpp mode. Make first shapes of any texts you want the correct
colour for. When there are no blended objects in the file this can be done
fast by selecting all objects and choosing the menuentry 'MakeShapes'.
IMPORTANT: !ArtWorks uses the RISC OS fontmanager and that doesn't
understand 15 bpp screenmodes, so the output palette is not
correct. When ArtWorks itself is in 'Preview' mode, the display
of fonts is correct and I suspect, when ArtWorks knows it is in
a 32000 colour preview mode it does a trick to display the fonts
correct. PalMaker cannot tell ArtWorks directly about the 32000
colour mode, but can only tell the low-level 'DitherExtend' and
other modules about the forced mode change by issuing a
'Service_ModeChange' after the VDU output was switched to a
sprite. This service call has no effect at all on the 'FontManager'
and 'FontDraw' modules, so they think they are still in a 4 or 8
bpp screenmode! CC has to do something about this.
Multi-tasking:
When PalMaker forces the remote redraws it signals this with the top led
in the hourglass pointer. Be carefull what you do with the mouse pointer
during the redraws. Because !Artworks can render multi-tasking PalMaker has
to call the WIMP poll loop. Any mouse clicks during the remote redraws can
pop up window(s) over the window of interest! This can not be seen as the
VDU output is switched to a sprite. So be carefull.
Heckbert quantization:
One can choose now between 'Heckbert6' and 'Heckbert5' quantization routines.
The difference is: Heckbert6 uses a 6 bits luminance and 6 bits chroma histogram.
This results in a histogram size of (1<<6)^3 shorts = 512 Kb. If this amount of
memory isn't available the 'Heckbert5' routine will be used instead: a 6 bits
luminance and 5 bits chroma histogram is (1<<6)*(1<<5)^2 shorts = 128 Kb. If
there is still no 128 Kb, an error will be displayed.
Bugs:
One last point. PalMaker can CRASH havily on some windows (ie the backdrop
window), so use PalMaker on !Draw, !ArtWorks, !Impression etc.. only.
PalMaker 1.03 (11 Mar 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
Version 1.03 includes a second quantization technique, the Heckbert
median cut algorithm. It's the same as used in the JPEG software.
So RGB values are converted to YCrCb (YUV) values with 6 bits accuracy.
It is faster than the Octree algorithm but uses much more memory!
Besides the three sprites held in memory, the Heckbert algoritm needs
a histogram, which is about 512 Kb big. If there isn't enough memory to
do a Heckbert quantization an error is given. If there is, all 512 Kb
will be given back to the free slot after use.
Which algorithm gives the best result? I don't know. The two algorithms
give different palettes and one must look very carefully to see
differences in the resulting (ArtWorks) picture. Which picture is better,
is I think a personal (and system dependent) question. But sometimes
it seems, when using the Heckbert algorithm, big coloured areas are
dithered, which are not, or less obvious dithered when using the Octree
approach. But when using a lot of different colours (the whole spectrum)
the Heckbert quantization seems to make a more balanced selection.
Another new feature is the possibility to see the RGB values for a
palette entry. Click select on a colour in the Palette window.
PalMaker 1.02 (8 Mar 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
In version 1.02 there is a new feature, the idle recognition
is better and a bug is cured.
- Palette saving and loading can now also be done through a 256 colour
sprite. When you drag a 256 colour sprite to the PalMaker iconbar
icon, the palette in the sprite is used for the display. You can also
save a mini 256 colour sprite with the actual 256 colour palette attached
to it.
The advantage of this is the following.
For example with ArtWorks documents, you cannot save a calculated
palette with the document. So you have to store the palettefile for a
particular document on disc, or calculate the palette every time you
load the document.
So why PalMaker can save a 256 colour sprite? You simply save the
sprite to the Artworks document and delete it from the workarea. No
panic, the sprite is still in the documents spritepool. The spritepool
will be saved with the Artworks document. So the next time you load
the document, you simply save the 256 colour sprite from the
spritepool to PalMakers iconbar icon or to Palmakers open Palette
window. And voila, the palette for the screen is taken from the sprite.
- sometimes when setting the palette, some parts of the desktop didn't
redraw their graphics (eg the RISC OS 3 backdrop application). This is
cured now (hopely).
PalMaker 1.01 (17 Feb 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
In version 1.01 some bugs are cured:
- No select clicks on the PalMaker icon are needed anymore to
signal the end of a redraw sequence (clicks still work). The time
between null-events is used now to see if the computer is idle
(watch out for placing the pointer on 'pointer sensitive' icons
because that slows down the machine i.e. the taskmanager icon)
Immediatly after PalMaker has installed its iconbar icon, a speed
test is done to see what the average time between null events is.
The iconbar menu of PalMaker is disabled during this speed test.
Please report any bugs involved with this automatic idle signaling!
- Iconbar icon now installs correctly to the left of the Palette icon.
- saving of a 256 colour palette to a sprite window from !Paint
now doesn't give an error anymore.
- An obscure bug is cured where PalMaker wrote to memory below
&8000. This bug occured when runing PalMaker together with a
module called 'bugbuster', and when running PalMaker under the
DDT debugger.
- General clean up of code.
PalMaker 1.00 (20 Jan 1993) Copyright Ferdinand Oeinck
------------------------------------------------------
This program allows you to set the 256 colour palette for
either the CC colourcard or State Machine's G8 range cards.
PalMaker is not an ordinary 'palette utility'-like program.
There are no sliders nor dragbars with which one can specify
RGB or CMYK or whatever value for a palette-entry.
The principle of PalMaker is to co-operate with a draw
program like !Draw or !ArtWorks and to let them redraw three
times a document of interest. Before every redraw the
palette is set to one of the three primary colours red,
green or blue. After every redraw a sprite of an area of
interest is saved. From the resulting 24-bit image a best
256 colours palette is calculated with a colour quantization
technique. Currently an octree algorithm is used. (in a
future version one can choose from several quantization
techniques such as Heckbert median cut and a variance based
algorithm).
Open and position a draw program window, containing a
document of interest on the screen. Then select the
'GiveBox' entry from the main iconbar menu from PalMaker.
Proceed now as if you would make a '!Paint's screen
snapshot'. The appearing rectangle should enclose the area
of the screen in which the document is found.
After releasing the left mouse button, the palette is
changed to a red one (0% to 100% red) and the draw program
updates his document. When the redraw is finished you have
to select click on the PalMaker iconbar icon. (Some draw
programs, such as ArtWorks, are capable of rendering the
contents of their main window in a multitasking way. So you
have to hint PalMaker, as there is no way, PalMaker can find
out itself when the redraw is ready).
This process is repeated with a green and a blue palette.
After the last click on the PalMaker icon the palette is
calculated.
To control the amount of colours one can choose the number
of wanted greys and if there should be desktop colours in
the palette.
Manual setting (after a modechange), Showing, Saving and
Loading of a current 256 colourpalette is also possible.
When using !Artworks as draw program a few things must be
watched out for to get the best result.
- Set anti-aliasing display off.
- Specify some (16 or 32) preset grey values because
Artworks renders greys wrong when there are no grey
values in the palette.
Ferdinand Oeinck
Grote Rozenstraat 47a
9712 TG Groningen
The Netherlands
email: ferdinan@oeinck.waterland.wlink.nl
This program is PD. You can do anything with it except sell it,
or incorporate it or parts of it into another program!